package com.example.compreshensiveshop.dao;

import com.example.compreshensiveshop.dto.SkuCreateDTO;
import com.example.compreshensiveshop.po.SkuPO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface SkuDao {
    /**
     *  添加商品SKU
     * @param skuPO
     */
    void addProductSku(@Param("skuPO") SkuPO skuPO);

    /**
     *  根据商品ID查询商品SKU
     * @param productId
     * @return
     */

    List<SkuPO> queryByPId(@Param("productId") Long productId);

    /**
     *  修改商品SKU
     * @param skuPO
     */
    void updateProductSku(@Param("skuPO") SkuPO skuPO);

    /**
     *  锁定库存
     * @param skuId
     * @param quantity
     */
    void lockStock(@Param("skuId") Long skuId,@Param("quantity") Integer quantity);

    /**
     *  释放库存
     * @param skuId
     * @param quantity
     */
    void backStock(@Param("skuId") Long skuId,@Param("quantity") Integer quantity);

    /**
     *  查询商品库存
     * @param productId
     * @return
     */
    Integer queryStock(@Param("productId") Long productId);

    /**
     *  释放库存
     * @param skuId
     * @param quantity
     */
    void releaseStock(@Param("skuId") Long skuId,@Param("quantity") Integer quantity);

    /**
     *  根据SKU ID查询SKU信息
     * @param skuId
     * @return
     */
    SkuPO queryById(@Param("skuId") Long skuId);

    /**
     *  查询商品SKU名称
     * @param skuId
     * @return
     */
    String queryProductSkuName(@Param("skuId") Long skuId);
}
